<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
    /*
      字符串常用方法
        + 通用语法: 字符串.方法名()
        + 注意: 所有的字符串常用方法都会不改变原始字符串, 而是以返回值形式给出结果

      1. charAt()
        + 语法: 字符串.charAt(索引)
        + 返回值: 该索引位置的字符
          => 如果没有该索引位置, 返回的是 空字符串

      2. charCodeAt()
        + 语法: 字符串.charCodeAt(索引)
        + 返回值: 该索引位置字符的 unicode 编码
          => 如果没有该索引位置, 返回的是 NaN

      新增一个  
         String.fromCharCode(ascii);
         返回ascii对应的字符 
      3. toUpperCase()
        + 语法: 字符串.toUpperCase()
        + 返回值: 将原始字符串内的所有字母转换成大写

      4. toLowerCase()
        + 语法: 字符串.toLowerCase()
        + 返回值: 将原始字符串内的所有字母转换成小写

      5. substr()
        + 语法: 字符串.substr(开始索引, 多少个)
        + 返回值: 截取出来的部分字符串
         // 跟数组的splice 类似
      6. substring()
        + 语法: 字符串.substring(开始索引, 结束索引)
        + 特点: 包前不包后
        + 返回值: 截取出来的部分字符串

      7. slice()
        + 语法: 字符串.slice(开始索引, 结束索引)
        + 特点: 包前不包后, 填写负整数
        + 返回值: 截取出来的部分字符串

      8. split()
        + 语法: 字符串.split('分隔符')
        + 返回值: 是一个数组
          => 按照分隔符把字符串分开成为几段内容
         跟数组的join 正好相反  
      9. concat()
        + 语法: 字符串.concat(字符串1, 字符串2, ...)
        + 返回值: 拼接好的字符串

      10. indexOf()
        + 语法: 字符串.indexOf(查找的字符, 开始索引)
        + 返回值:
          => 如果原始字符串内有该字符串片段, 那么是该字符串片段第一次出现的首字母索引位置
          => 如果原始字符串内没有该字符串片段, 那么是 -1

      11. lastIndexOf()
        + 语法: 字符串.lastIndexOf(字符串片段, 开始索引)
        + 返回值:
          => 如果原始字符串内有该字符串片段, 那么是该字符串片段第一次出现的首字母索引位置
          => 如果原始字符串内没有该字符串片段, 那么是 -1

      12. includes()
        + 语法: 字符串.includes(字符串片段)
        + 作用: 该字符串中是否包含该字符串片段
        + 返回值: 一个布尔值
          => true 说明有该字符串片段
          => false 说明没有该字符串片段

      13. startsWith()
        + 语法: 字符串.startsWith(字符串片段)
        + 作用: 判断该字符串是否以该字符串片段开头
        + 返回值: 一个布尔值
          => true 说明以该字符串片段开头
          => false 说明不以该字符串片段开头

      14. endsWith()
        + 语法: 字符串.endsWith(字符串片段)
        + 作用: 判断该字符串是否以该字符串片段结尾
        + 返回值: 一个布尔值
          => true 说明以该字符串片段结尾
          => false 说明不以该字符串片段结尾

      15. trim()
        + 语法: 字符串.trim()
        + 作用: 去除字符串首尾空白
        + 返回值: 去除首尾空白后的字符串

      16. trimStart() / trimLeft()
        + 语法:
          => 字符串.trimStart()
          => 字符串.trimLeft()
        + 返回值: 去除开始位置空白以后的字符串

      17. trimEnd() / trimRight()
        + 语法:
          => 字符串.trimEnd()
          => 字符串.trimRight()
        + 返回值: 去除结束位置空白以后的字符串

      18. repalce()
        + 语法: 字符串.replace(换下字符, 换上字符)
        + 作用: 替换原始字符串内的片段
        + 注意: 只能替换一个
        + 返回值: 替换好的字符串
    */ 

    // var strs1 = '我还是很喜欢你,就像盛夏阳光普照,不留余地';
    // console.log('原字符串',strs1)
    // var res = strs1.charAt(6);// 下标6位置上的字符 
    // console.log('结果',res)
    // console.log('操作以后',strs1)


    // var strs2 = 'good good study day day up';
    // console.log('原字符串',strs2)
    // var res = strs2.charCodeAt(6);
    // console.log('结果',res)
    // console.log('操作以后',strs2)


    // var res = String.fromCharCode(109);
    // console.log(res);

    // var str3 = 'wall eye knee';
    //  console.log('原字符串',str3)
    // var res = str3.toUpperCase();
    // console.log('结果',res)
    // console.log('操作以后',str3);



    // var str4 = 'KOBBE BREANT';
    //  console.log('原字符串',str4)
    // var res = str4.toLowerCase();
    // console.log('结果',res)
    // console.log('操作以后',str4);

    // var str5 = '别让我再看到你,要不然见一次爱一次';
    //  console.log('原字符串',str5)
    // var res = str5.substr(4,3); // 从下标4开始 截取3个  
    // console.log('结果',res)
    // console.log('操作以后',str5);



    // var str6 = '你知道你像什么人么?像什么?像我的女人';
    //  console.log('原字符串',str6)
    // // var res = str6.slice(4,7); // 从下标4开始 截取到下标7 [4,7)  456
    // // var res = str6.slice(4);// 从下标4 一直截取到最后面  
    // // var res = str6.slice(-5);// -5等同于字符串的长度+负整数是slice(14)
    // // var res = str6.slice(-5,-10);// -5到-10 从右向左
    // // 字符串和数组截取一定是从左到右 所以方向冲突 拿不到任何结果
    // var res = str6.slice(0);
    // console.log('结果',res); // 像什么
    // console.log('操作以后',str6);


    //   var str7 = '我在找一匹马?什么码,你的微信二维码';
    //  console.log('原字符串',str7)
    // // var res = str7.split('?'); // 使用?切成两部分
    // //var res = str7.split();// 如果什么都不写 那么会把整个字符串作为一个元素放到数组中
    // // var res = str7.split('什么码,');// 如果什么都不写 那么会把整个字符串作为一个元素放到数组中
    // var res = str7.split(''); // 会将字符一个个的放到数组中 
    // console.log('结果',res)
    // console.log('操作以后',str7);



    // var strs = '猪撞树上,你撞我心里了';

    // 把撞 替换成 顶 
    // 使用撞将字符串切割成数组 
    // 使用顶将数组连成一个字符串
        //strs.split('撞') 得到一个数组   ['猪','树上,你','我心里了']
    // var res = strs.split('撞').join('顶')
    // console.log(res);


    // var str8 = `我肯定吃盐吃多了,要不然怎么老是闲的想你`;
    // console.log('原字符串',str8);
    // var res = str8.substring(6,13); // 678910 11 12 [6,13)
    // console.log('结果',res) //多了,要不然怎
    // console.log('操作以后原字符串',str8);

    // substring() slice() 效果一样  slice支持 负整数    


    // var str9 = '你知道我的缺点是啥不?';
    // console.log('原字符串',str9);
    // var res = str9.concat('是啥?','缺点你');
    // console.log(res);
    // console.log('操作以后原字符串',str9);


    // var str10 = '你知道你和星星的区别么?星星在天上,你在我心里';
    // // var res = str10.indexOf('星');// 5 第一次出现的位置
    // var res = str10.indexOf('星',11);// 12  从11完后 返回星 第一次出现的位置

    // console.log(res);


    // var str11 = '你知道你和星星的区别么?星星在天上,你在我心里';
    // // var res = str11.lastIndexOf('星');// 13 从右到左  
    // var res = str11.lastIndexOf('星',11);// 6  从11开始向左 返回星 第一次出现的位置

    // console.log(res);


    // var str11 = '现在几点了?16点,不,是我们幸福的起点';
    // var res = str11.includes('10点');
    // console.log(res);
    // var str12 = '鲁A00544';
    // var res = str12.startsWith('鲁A');
    // console.log(res);


    // var str13 = '鲁A44944';
    // var res = str13.endsWith('44');
    // console.log(res);

    // var str14 = '         你是可爱的女孩,我叫可爱       ';

    // var str15 = '被你赞过的朋友圈是 甜甜圈';
    // var str16 = '这是果冻,这是黑洞,你是我的心动';

    // var str17 = str15+str14.trim()+str16;
    // console.log(str17);
    // var str18 = str15+str14.trimLeft()+str16;
    // console.log(str18);

    // var str19 = str15+str14.trimStart()+str16;
    // console.log(str19);

    // var str20= str15+str14.trimRight()+str16;
    // console.log(str20);

    // var str21 = str15+str14.trimEnd()+str16;
    // console.log(str21);

    var str22 = '你有没有问到烧焦的味道,那是我的心在燃烧,忍不住的想见你,所以烧焦了';
    console.log('原字符串',str22);

    // 烧焦换成 烧糊
    var res = str22.replace('烧焦','烧糊');
    console.log('结果',res);
    console.log('替换后的原字符串',str22);
    </script>
</body>
</html>